<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <p>v-for和v-if不要再同一层中使用，会报错（从3.0开始）</p>
    <p>有三种解决方法</p>
    <ul>
        <li>方法一：（仅使用于vue-cli），嵌套一层&lt;template>...&lt;/template>标签，这只是一个逻辑标签，vue不会渲染出dom节点。</li>
        <li>方法二：使用计算属性</li>
        <li>方法三：使用v-show(不推荐)</li>
    </ul>
    <p>v-for绑定key</p>
    <p>为了提高节点渲染的效率，推荐v-for生成的节点绑定key值。key绑定的值要求使用唯一的值。有以下三种方案（从上向下）。</p>
    <ol>
        <li>使用元素的唯一属性。比如说student的id属性。</li>
        <li>直接使用v-for的item。</li>
        <li>使用v-for的索引值。</li>
    </ol>

    <main id="app">
        <h2>姓名</h2>
		<ul>
			<li v-for="item in names" :key="item">{{item}}</li>
		</ul>
        <h2>v-for和v-if套用</h2>
        <ul>
            <!-- 因为3.x会报错，所以展示18岁以上的同学，不再推荐这样写了 -->
            <li v-for="item in students" v-if="item.age >= 18">{{item.name}}</li>
        </ul>
        <ul>
            <!-- 因为3.x会报错，所以展示18岁以上的同学，不再推荐这样写了 -->
            <li v-for="item in adultStudents" v-if="item.age >= 18">{{item.name}}</li>
        </ul>
        <h2>v-for的索引和绑定key</h2>
        <ul>
            <li v-for="(item,idx) in adultStudents" :key="item.name">{{idx}}：{{item.name}}</li>
        </ul>
    </main>
</body>
<script src="../vue.js"></script>
<script>

    let vue = new Vue({
        el: "#app",
        data() {
            return {
                names: ["伍雨薇", "付仁龙", "罗佰君", "王魏辉", "袁浩哲"],
                students: [
                    {
                        name: "伍雨薇",
                        age: 20,
                        sex: "女",
                    },
                    {
                        name: "付仁龙",
                        age: 22,
                        sex: "男",
                    },
                    {
                        name: "罗佰君",
                        age: 24,
                        sex: "男",
                    },
                    {
                        name: "王魏辉",
                        age: 17,
                        sex: "男",
                    },
                    {
                        name: "袁浩哲",
                        age: 16,
                        sex: "男",
                    },
                ]
            }
        },
        methods: {
        },
        computed: {
            adultStudents() {
                return this.students.filter(v => v.age >= 18);
            }
        }
    });
</script>

</html>